#ifndef NETWORKMANAGER_H
#define NETWORKMANAGER_H

#include <QObject>
#include <QTcpSocket>
#include "Message.h"

class NetworkManager : public QObject
{
    Q_OBJECT
public:
    explicit NetworkManager(QObject *parent = nullptr);

    // 新增：直接发送字符串的方法
    void sendString(const QString& data);  // 添加这行
    // 连接服务器
    void connectToServer(const QString& ip = "192.168.5.185", quint16 port = 8000);

    // 发送TLV数据包
    void sendTlvPacket(const wd::TLV& tlv);

    // 检查连接状态
    bool isConnected() const;

signals:
    // 接收到服务器回复
    void tlvReceived(const wd::TLV& tlv);

    // 连接状态变化
    void connected();
    void disconnected();
    void errorOccurred(const QString& error);

private slots:
    // 处理网络事件
    void onReadyRead();
    void onSocketError(QAbstractSocket::SocketError error);

private:
    QTcpSocket* m_tcpSocket;  // TCP套接字
//    bool m_isConnected;
};

#endif // NETWORKMANAGER_H
